<?php
class Endereco{

	private $id;
	private $logradouro;
	private $bairro;
	private $cidade;
	private $estado;
	private $numero;
	private $cep;
	public function __construct($id = 0,$logradouro= "" ,$bairro= "" ,$cidade= "" ,$estado= "" ,$numero= "" ,$cep= "" ){
		$this->id = $id;
		$this->logradouro = $logradouro;
		$this->bairro = $bairro;
		$this->cidade = $cidade;
		$this->estado = $estado;
		$this->numero = $numero;
		$this->cep = $cep;

	}

	public static function construct($array){
		return new Endereco( $array['id'], $array['logradouro'], $array['bairro'], $array['cidade'], $array['estado'], $array['numero'], $array['cep']);

	}

	public function getId(){
		return $this->id;
	}

	public function setId($id){
		$this->id=$id;
	}

	public function getLogradouro(){
		return $this->logradouro;
	}

	public function setLogradouro($logradouro){
		$this->logradouro=$logradouro;
	}

	public function getBairro(){
		return $this->bairro;
	}

	public function setBairro($bairro){
		$this->bairro=$bairro;
	}

	public function getCidade(){
		return $this->cidade;
	}

	public function setCidade($cidade){
		$this->cidade=$cidade;
	}

	public function getEstado(){
		return $this->estado;
	}

	public function setEstado($estado){
		$this->estado=$estado;
	}

	public function getNumero(){
		return $this->numero;
	}

	public function setNumero($numero){
		$this->numero=$numero;
	}

	public function getCep(){
		return $this->cep;
	}

	public function setCep($cep){
		$this->cep=$cep;
	}
	public function equals($object){
		if($object instanceof Endereco){

			if($this->id!=$object->id){
				return false;

			}

			if($this->logradouro!=$object->logradouro){
				return false;

			}

			if($this->bairro!=$object->bairro){
				return false;

			}

			if($this->cidade!=$object->cidade){
				return false;

			}

			if($this->estado!=$object->estado){
				return false;

			}

			if($this->numero!=$object->numero){
				return false;

			}

			if($this->cep!=$object->cep){
				return false;

			}

			return true;

		}
		else{
			return false;
		}

	}
	public function toString(){

		return "  [id:" .$this->id. "]  [logradouro:" .$this->logradouro. "]  [bairro:" .$this->bairro. "]  [cidade:" .$this->cidade. "]  [estado:" .$this->estado. "]  [numero:" .$this->numero. "]  [cep:" .$this->cep. "]  " ;
	}
	public function toArray(){

		$temp =   (array) $this;

		$array = array();

		foreach ($temp as $k => $v){

			$k = preg_match('/^\x00(?:.*?)\x00(.+)/', $k, $matches) ? $matches[1] : $k;

			$array[$k] = $v;


		}
		return  $array;
	}

}
?>